diff --git a/tests/codeigniter/helpers/array_helper_test.php b/tests/codeigniter/helpers/array_helper_test.php
index ba46e86..5a99589 100644
--- a/tests/codeigniter/helpers/array_helper_test.php
+++ b/tests/codeigniter/helpers/array_helper_test.php
@@ -2,16 +2,16 @@
 
 class Array_helper_test extends CI_TestCase {
 
+	public $my_array = array(
+		'foo'    => 'bar',
+		'sally'  => 'jim',
+		'maggie' => 'bessie',
+		'herb'   => 'cook'
+	);
+
 	public function set_up()
 	{
 		$this->helper('array');
-
-		$this->my_array = array(
-			'foo'		=> 'bar',
-			'sally'		=> 'jim',
-			'maggie'	=> 'bessie',
-			'herb'		=> 'cook'
-		);
 	}
 
 	// ------------------------------------------------------------------------
@@ -19,9 +19,7 @@
 	public function test_element_with_existing_item()
 	{
 		$this->assertEquals(FALSE, element('testing', $this->my_array));
-
 		$this->assertEquals('not set', element('testing', $this->my_array, 'not set'));
-
 		$this->assertEquals('bar', element('foo', $this->my_array));
 	}
 
diff --git a/tests/codeigniter/helpers/captcha_helper_test.php b/tests/codeigniter/helpers/captcha_helper_test.php
index fc86305..bb8760a 100644
--- a/tests/codeigniter/helpers/captcha_helper_test.php
+++ b/tests/codeigniter/helpers/captcha_helper_test.php
@@ -4,7 +4,7 @@
 
 	public function test_create_captcha()
 	{
-		$this->markTestSkipped('Cant easily test');
+		$this->markTestSkipped("Can't test");
 	}
 
 }
\ No newline at end of file
diff --git a/tests/codeigniter/helpers/directory_helper_test.php b/tests/codeigniter/helpers/directory_helper_test.php
index de72dee..ac71dfa 100644
--- a/tests/codeigniter/helpers/directory_helper_test.php
+++ b/tests/codeigniter/helpers/directory_helper_test.php
@@ -31,7 +31,7 @@
 		// is_dir(), opendir(), etc. seem to fail on Windows + vfsStream when there are trailing backslashes in directory names
 		if ( ! is_dir(vfsStream::url('testDir').DIRECTORY_SEPARATOR))
 		{
-			$this->markTestSkipped();
+			$this->markTestSkipped("Can't test this under Windows");
 			return;
 		}
 
diff --git a/tests/codeigniter/helpers/email_helper_test.php b/tests/codeigniter/helpers/email_helper_test.php
index fea452f..53a2068 100644
--- a/tests/codeigniter/helpers/email_helper_test.php
+++ b/tests/codeigniter/helpers/email_helper_test.php
@@ -15,4 +15,9 @@
 		$this->assertEquals(TRUE, valid_email('my.test@test.com'));
 	}
 
+	public function test_send_mail()
+	{
+		$this->markTestSkipped("Can't test");
+	}
+
 }
\ No newline at end of file
diff --git a/tests/codeigniter/helpers/inflector_helper_test.php b/tests/codeigniter/helpers/inflector_helper_test.php
index f3b0ebb..81ce5e3 100644
--- a/tests/codeigniter/helpers/inflector_helper_test.php
+++ b/tests/codeigniter/helpers/inflector_helper_test.php
@@ -10,11 +10,11 @@
 	public function test_singular()
 	{
 		$strs = array(
-			'tellies'		=> 'telly',
-			'smellies'		=> 'smelly',
-			'abjectnesses'	=> 'abjectness',
-			'smells'		=> 'smell',
-			'equipment'		=> 'equipment'
+			'tellies'      => 'telly',
+			'smellies'     => 'smelly',
+			'abjectnesses' => 'abjectness',
+			'smells'       => 'smell',
+			'equipment'    => 'equipment'
 		);
 
 		foreach ($strs as $str => $expect)
@@ -28,12 +28,12 @@
 	public function test_plural()
 	{
 		$strs = array(
-			'telly'			=> 'tellies',
-			'smelly'		=> 'smellies',
-			'abjectness'	=> 'abjectnesses', // ref : http://en.wiktionary.org/wiki/abjectnesses
-			'smell'			=> 'smells',
-			'witch'			=> 'witches',
-			'equipment'		=> 'equipment'
+			'telly'      => 'tellies',
+			'smelly'     => 'smellies',
+			'abjectness' => 'abjectnesses', // ref : http://en.wiktionary.org/wiki/abjectnesses
+			'smell'      => 'smells',
+			'witch'      => 'witches',
+			'equipment'  => 'equipment'
 		);
 
 		foreach ($strs as $str => $expect)
@@ -48,9 +48,9 @@
 	{
 		$strs = array(
 			'this is the string'	=> 'thisIsTheString',
-			'this is another one'	=> 'thisIsAnotherOne',
-			'i-am-playing-a-trick'	=> 'i-am-playing-a-trick',
-			'what_do_you_think-yo?'	=> 'whatDoYouThink-yo?',
+			'this is another one'   => 'thisIsAnotherOne',
+			'i-am-playing-a-trick'  => 'i-am-playing-a-trick',
+			'what_do_you_think-yo?' => 'whatDoYouThink-yo?',
 		);
 
 		foreach ($strs as $str => $expect)
@@ -64,10 +64,10 @@
 	public function test_underscore()
 	{
 		$strs = array(
-			'this is the string'	=> 'this_is_the_string',
-			'this is another one'	=> 'this_is_another_one',
-			'i-am-playing-a-trick'	=> 'i-am-playing-a-trick',
-			'what_do_you_think-yo?'	=> 'what_do_you_think-yo?',
+			'this is the string'    => 'this_is_the_string',
+			'this is another one'   => 'this_is_another_one',
+			'i-am-playing-a-trick'  => 'i-am-playing-a-trick',
+			'what_do_you_think-yo?' => 'what_do_you_think-yo?',
 		);
 
 		foreach ($strs as $str => $expect)
@@ -81,10 +81,10 @@
 	public function test_humanize()
 	{
 		$strs = array(
-			'this_is_the_string'	=> 'This Is The String',
-			'this_is_another_one'	=> 'This Is Another One',
-			'i-am-playing-a-trick'	=> 'I-am-playing-a-trick',
-			'what_do_you_think-yo?'	=> 'What Do You Think-yo?',
+			'this_is_the_string'    => 'This Is The String',
+			'this_is_another_one'   => 'This Is Another One',
+			'i-am-playing-a-trick'  => 'I-am-playing-a-trick',
+			'what_do_you_think-yo?' => 'What Do You Think-yo?',
 		);
 
 		foreach ($strs as $str => $expect)
